#include "common.cpp"
#include <iostream>

using namespace std;


/*
all'interfaccia grafica killAs (simula un attacco fisico)  arrivano valori sbagliati,


killAs( int i ) setta state=0 sugli as e gli archi fisici e logici incidenti,
funziona correttamente,
ma rileggendo il file di configurazione i dati ottenuti 
da   reteFisica.getState(i, j);
e da reteLogica.getState(i, j);
sono sabagliati (state sempre uguale a 1)

Simone potresti correggere questo bug?


*/

int main()
{
	int n = 8;  // n sono il numero degli AS
	
	Simulator simulatore(1+n);


	//questi 3 metodi servono per caricare i dati della rete fisica,logica e il traffico
	simulatore.physicalConfig();
	simulatore.calculateLogicalNet();
	simulatore.trafficConfig();

	//stampa lo stato della rete
	simulatore.printXml();


	//disttiviamo l'AS 3
	simulatore.killAS( 3 )  ;
	simulatore.update();

	//gli archi e traffico incidenti a 3 riportano state=0
	simulatore.printXml();
	
	//aggiorna il file che contiene i dati
	//phisical e logical network sono calcolati correttamente
	simulatore.saveConfig("config.xml");
	
	
	//ricarichiamo i dati
	simulatore.physicalConfig(); // Istanzio la rete fisica inserita nel file di configurazione           
	simulatore.calculateLogicalNet();
	simulatore.trafficConfig(); // Istanzio il traffico inserito nel file di configurazione

	//BUG! gli archi e traffico incidenti a 3 riportano state=1
	simulatore.printXml();

	

return 0;
}
